昨天的 Day24,我們完成了一個關鍵性的技術基礎:
✅ 使用 Google Sheets 讓 AI 擁有「記憶力」
✅ 解決 LINE API 無法回溯訊息的限制
✅ 將用戶每一句話都即時儲存,讓 AI 有了「上下文」可供參考
📌 但要特別強調一件事:
昨天的內容,只是「記錄上下文」而已,還沒真正應用在實際流程中。
你可以把昨天的流程想像成:
我們替 AI 架好了大腦主機板,也裝上了記憶體,但 CPU 還沒啟動。
🧠 換句話說:AI 雖然有資料庫可以讀,但昨天我們並沒有讓它「讀出來判斷」。
那今天呢?
今天就是:
👉 正式啟動 AI 的大腦
👉 開始讓 AI 參與流程
我們延續昨天的情境:
客戶的表達方式是 逐步輸入 或 邊想邊修改:
在原本的流程中,AI 只會看單一句話 → 每次都當成一個新的需求。
結果就是Odoo系統中會出現:好幾張商機
但其實我們知道,客戶在說的是「同一個商機的不同補充」。
所以今天我們就是要利用有記憶力的 AI,來幫我們完成以下事情:
1️⃣ 整合客戶完整的需求
2️⃣ 判斷哪些資訊還沒講清楚
3️⃣ 主動用對話方式詢問、引導
4️⃣ 整理為一份完整摘要,請客戶確認
5️⃣ 確認後才新增 Odoo 商機
這樣的過程,才是真正像真人客服一樣「一步步引導
」,而不是讓客戶像填表機器人一樣被動填資料。
首先,我們要先釐清:
如果客戶逐句輸入詢價內容,可能會有哪些情境?
1️⃣ 表示想了解產品,但沒有提供具體資訊
2️⃣ 提供了工件材質
3️⃣ 提供了加工需求
4️⃣ 提供了工件尺寸
5️⃣ 點選了「規格無誤」按鈕,回傳規格無誤
根據這五種可能,我設計了一套邏輯:
👉 讓 AI 分析客戶的整段對話,判斷是否有遺漏關鍵資訊。
如果有缺漏,AI 會只回覆一項優先度最高的缺少項目;
若資訊都已完整,AI 則會幫我們統整為一份清單,並等待客戶確認。
簡單來說:
因此,我們現在要來新增一個 Gemini 模組,並設定對應的 Prompt。
📌 注意:Prompt 的輸入內容,必須是該客戶的完整對話紀錄(也就是Google Sheets的對話紀錄),而不是單一句話!
請根據以下對話紀錄,依照購買流程順序判斷是否已取得完整資訊,並輸出對應結果。
購買流程如下順序進行判斷:
-購買:明確表示想要購買刀具產品。
-工件材質:說明被加工物體的材質,例如鋁、不鏽鋼、鑄鐵等。
-加工需求:說明希望刀具能達成的加工效果,例如去毛邊、內孔加工、倒角等。
-工件尺寸:說明被加工物體的尺寸或體積,例如「材積大概5」、「長寬高約10公分」。
輸出邏輯、順序如下:
一、若對話中出現"規格無誤"的語句,表示前一筆單據已完成。
→ 請只讀取這句之後的內容。前面的資料一律忽略。
二、若三項資訊皆齊全,請統整為下列格式:
1.工件材質:xxx
2.加工需求:xxx
3.工件尺寸:xxx
三、若有缺少資訊,請依照購買流程順序,回傳第一個缺少的欄位名稱(只輸出一項):
工件材質
加工需求
工件尺寸
請勿輸出任何說明或格式說明,只需輸出結果。
對話紀錄如下:{{70.array}}
範例 1:
輸入:
我想購買刀具
我要用來切鋁的
我要倒角跟去毛邊
材積約為10
輸出:
1.工件材質:鋁
2.加工需求:倒角、去毛邊
3.工件尺寸:10
範例 2:
輸入:
我想購買刀具
我要用來切鑄鐵的
輸出:
加工需求
範例 3:
輸入:
嗨,我是佳佳精密的
我們有在找可以加工不鏽鋼的刀具
主要是希望可以用在內孔加工跟倒角這兩種用途
目前的工件大約是 12x12x20 的尺寸
輸出:
1.工件材質:不鏽鋼
2.加工需求:內孔加工、倒角
3.工件尺寸:12x12x20
範例 4:
輸入:
哈囉~我們最近在挑刀具,想問一下你們家的規格
我想要加工鋁材,會用在倒角跟去毛邊上
之前用別家的效果沒有很好
這次想試試看你們家的
目前就先給這些資訊,方便報個價嗎?
輸出:
工件尺寸
範例5:
輸入:
我要購買刀具
材質鋁
鑽孔
16材
規格無誤
我想買你們的產品
我要用來切鑄鐵
輸出:
加工需求
(輸出加工需求的原因是因為有出現規格無誤,所以規格無誤前的資料都不需參考,只統整規格無誤後的資料)
接下來,根據我的 Prompt 設計,AI 可能會產生以下五種結果:
所以我們需要設定 五條分流路線。
特別是最後一條「統整資訊」的判斷,因為AI會回傳的格式為:
1.工件材質:xxx
2.加工需求:xxx
3.工件尺寸:xxx
所以我們可以設置嚴謹一點的篩選:
如果AI文字包含
且包含
加工需求:且包含
工件尺寸:則就走統整路線。
針對前四種「缺少資訊」的情境,我設計了兩種詢問方式:
所以新增一個Line的Make an API Call
我在這邊呈現兩種範例
1.這是我第一次購買路線
的Make an API Call設置
URL:/v2/bot/message/reply
BODY:
{
"replyToken": "{{3.events[].replyToken}}",
"messages": [
{
"type": "text",
"text": "請選擇或說明工件材質:(被加工物體的材質)",
"quickReply": {
"items": [
{
"type": "action",
"action": {
"type": "message",
"label": "鑄鐵",
"text": "工件材質:鑄鐵"
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "不銹鋼",
"text": "工件材質:不銹鋼"
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "鋁",
"text": "工件材質:鋁"
}
}
]
}
}
]
}
2.這是我工件材質路線
的Make an API Call設置
至於加工需求和工件尺寸就請大家練習,就其實也是依樣畫葫蘆
URL:/v2/bot/message/reply
BODY:
{
"replyToken": "{{3.events[].replyToken}}",
"messages": [
{
"type": "text",
"text": "請選擇或說明工件材質:(被加工物體的材質)",
"quickReply": {
"items": [
{
"type": "action",
"action": {
"type": "message",
"label": "鑄鐵",
"text": "工件材質:鑄鐵"
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "不銹鋼",
"text": "工件材質:不銹鋼"
}
},
{
"type": "action",
"action": {
"type": "message",
"label": "鋁",
"text": "工件材質:鋁"
}
}
]
}
}
]
}
這條路線需要特別處理,因為 AI 回傳的是整合好的完整資訊,例如:
1.工件材質: 不鏽鋼
2.加工需求: 倒角
3.工件尺寸: 30x40x20 mm
我們要做的有兩件事:
1️⃣ 將這份資料回覆給客戶
2️⃣ 加上 QuickReply:「✅ 規格無誤」
到這邊你可能會想說:
那就先用
Send a Reply Message
回資料,再用Make an API Call
發送 QuickReply,不就好了?
❗但其實這是個 陷阱
因為quickreply 一定要使用Make an API Call
而Make an API Call是需要使用要Reply Token
但你還記得Day13說的嗎?
- Reply Token 只能用一次,用過就失效
- 若要在之後回覆,必須改用 Push Message
所以正確做法如下:
1️⃣用 Line 的 Send a Push Message 傳送統整資訊(因為不需要 Reply Token,使用 line_uid 來判斷要發送給哪一位使用者)
2️⃣再用 Make an API Call 發送帶有 QuickReply 的確認訊息
URL:/v2/bot/message/reply
BODY:
{
"replyToken": "{{3.events[].replyToken}}",
"messages": [
{
"type": "text",
"text": "請幫我確認規格是否正確,若不正確請直接在聊天窗敘述你要更改的資訊",
"quickReply": {
"items": [
{"type": "action",
"action": {
"type": "message",
"label": "規格無誤",
"text": "規格無誤"
}}
]
}
}]}
🎯 到這裡,我們就完成了像 「真人對話般的機器人」:
至於如何將資料寫入 Odoo CRM 商機,就請參考 Day23 的說明吧~
那接下來就來成果演示一下吧~
我們實測了一段真實互動:
1️⃣ 客戶第一句:「你好,我想詢價」
2️⃣ AI 判斷為「詢價意圖」
3️⃣ 系統開始提問:「請提供工件材質」
4️⃣ 客戶逐步說明
5️⃣ 系統持續補問、判斷是否有缺漏
6️⃣ 系統整合為摘要並請客戶確認
7️⃣ 客戶點選「規格無誤」
8️⃣ 成功新增 Odoo CRM 商機
9️⃣ LINE 回覆:「✅ 已新增,稍後與您聯繫」
結果呈現:https://youtu.be/UNbxfoNeKJs
今天的任務,我們可以說是幫 AI 打通了任督二脈:
✅ 把對話寫入 Google Sheets(記憶)
✅ 用 Gemini 分析上下文(判斷)
✅ 補問缺漏資訊,引導對話(引導)
✅ 確認後才寫入 Odoo(精準寫入)
這樣的流程,才是真正的「對話式詢價
」,
不是填表單的包裝,而是從語意到行為都像真人客服。
玩到這裡,你可能心中也有個疑問:
「啊你不是說這系列是 No Code 嗎?為什麼我看你用 Make 跟 Odoo 串接時,全部都在用什麼
Make an API Call
? Make 不是有 Odoo 模組嗎?」
沒錯,這就是我們明天的主題!
我會完整說明:
我們明天見 👋